#include<stdio.h>
#include <algorithm>
using namespace std;
const int maxn=105;
int a[maxn],b[maxn];
void dfs(int s,int num,int x,int n)
{
	if(num==x){
		for(int i=0;i<n;i++){
			if(b[i]==1){
				printf("%d ",a[i]);
			}	
		}
		printf("\n");
		return;
	}
	if(s==n) return ;
    if(a[s]==a[s-1]&&b[s-1]==0){
      	s++;
	}	
	if(b[s]==0){
		b[s]=1;
		dfs(s+1,num+a[s],x,n);
		b[s]=0;
		dfs(s+1,num,x,n);
	}
}
int main()
{
	int m,n,sum=0;
	scanf("%d",&m);
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
		sum+=a[i];
	}
	int x=sum-m;
	sort(a,a+n);
	dfs(0,0,x,n);
	return 0;
}
